package StreamCode;

import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import static java.lang.Integer.parseInt;

public class StreamCode3 {
    public static void main(String[] args) {

//        ArrayList<Integer> list1 = new ArrayList<Integer>();
//        Collections.addAll(list1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
//        Integer[] arr = list1.stream().filter(x -> x % 2 == 0).toArray(Integer[]::new);
//        System.out.println(Arrays.toString(arr));

        //使用collect收集流中的数据 放到集合中
        //使用toMap整理流数据  把流中的元素整理成键值对的形式
//        ArrayList<String> list2 = new ArrayList<>();
//        Collections.addAll(list2, "zhangsan,23", "lisi,24", "wangwu,25");
//        Map map1 = list2.stream()
//                .filter(s -> {
//                    return parseInt(s.split(",")[1]) >= 24;
//                })
//                .collect(Collectors.toMap(new Function<String, String>() {
//                    @Override
//                    public String apply(String s) {
//                        return s.split(",")[0];
//                    }
//                },new Function<String, String>() {
//                    @Override
//                    public String apply(String s){
//                        return s.split(",")[1];
//                    }
//                }));
//        System.out.println(map1);

        ArrayList<String> list3 = new ArrayList<>();
        Collections.addAll(list3, "张三字,23", "李四,24", "王五,25", "赵六,26", "孙字,27", "何八字,28");
        ArrayList<String> list4 = new ArrayList<>();
        Collections.addAll(list4, "杨1美女,33", "杨美女,34", "W美女,35", "杨赵美女,36", "S美女,37", "杨H美女,28");
       Stream<String> stream1= list3.stream().filter(s -> s.split(",")[0].length() == 3).limit(2);
        //使用skip跳过第一个
        Stream<String> stream2= list4.stream().filter(s -> s.split(",")[0].startsWith("杨")).skip(1);
        // 使用concat方法拼接两个流为一个流 再使用map方法处理数据为Actor对象
        List<Actor> filterList = Stream.concat(stream1,stream2)
                .map(s -> {
            return new Actor(s.split(",")[0],parseInt(s.split(",")[1]));
        })
                //转为List集合赋值
                .collect(Collectors.toList());
        System.out.println(filterList);

    }
}
